package cn.yujian95.hospital.service;

import cn.yujian95.hospital.dto.param.VisitAppointmentParam;
import cn.yujian95.hospital.dto.param.VisitProductParam;
import cn.yujian95.hospital.dto.param.VisitProductParamDto;
import cn.yujian95.hospital.dto.update.VisitProductInfo;
import cn.yujian95.hospital.entity.VisitProduct;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

public interface IVisitProductService extends IService<VisitProduct> {

    /**
     * 判断这个产品是否存在
     *
     * @param productId
     * @return
     */
    boolean countProductId(Long productId);

    /**
     * 添加预约产品信息
     *
     * @param param
     * @return
     */
    String insert(VisitProductParam param);

    /**
     * 查看和这个预约编号是否存在
     *
     * @param id
     * @return
     */
    boolean countId(Long id);

    /**
     * 删除预约信息
     *
     * @param id
     * @return
     */
    boolean deleteAppointmentProduct(Long id);

    /**
     * 完成预约产品
     *
     * @param id
     * @return
     */
    boolean AppointmentProductOk(Long id);

    /**
     * 查询预约产品信息
     *
     * @param id
     * @return
     */
    VisitProductInfo getAppointmentProductInfo(Long id);

    /**
     * 分页查询产品信息
     *
     * @param productName
     * @param userName
     * @param pageNum
     * @param pageSize
     * @return
     */
    IPage<VisitProductParamDto> list(String productName, String userName, Integer pageNum, Integer pageSize);

    /**
     * 获取预约列表信息小程序端
     * @param userId
     * @return
     */
    IPage<VisitProductParamDto> getAppointmentListProductInfoByUserId(Long userId);
}
